package com.wva.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @Author: hong
 * @Date: 2025/2/9 23:20:23
 */
@AllArgsConstructor
@Getter
public enum ObjectName {
    /**
     * 临时的视频上传分块<br>
     * 参数1：整个视频文件的md5<br>
     * 参数2：分块文件序号
     */
    VIDEO_PART(Bucket.VIDEO, "/part/%s/%s"),

    /**
     * 已经处理完毕的视频对象，以文件md5命名，参数1是视频唯一，参数2是规格（如720x30）
     */
    UPLOAD(Bucket.VIDEO,"/upload/%s/%s.mp4"),
    /**
     * 没有进行规格转换的原始视频
     */
    UPLOAD_RAW(Bucket.VIDEO,"/upload/%s/raw.mp4"),

    /**
     * 上传的等待处理的临时视频对象，以文件md5命名
     */
    TEMP(Bucket.VIDEO,"/temp/%s"),

    /**
     * 视频封面，参数1是随机id
     */
    COVER(Bucket.STATIC,"/video/cover/%s.png");

    private final Bucket bucket;
    private final String formatString;

    public String format(Object... args) {
        return String.format(this.formatString, args);
    }

}
